我的Bilibili频道:香芋派Taro
我的个人博客:taropie0224.github.io(阅读体验更佳)
我的公众号:香芋派的烘焙坊
我的音频技术交流群:1136403177
我的个人微信:JazzyTaroPie
https://leetcode.cn/problems/rotate-list/
题解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| class Solution { public: ListNode* rotateRight(ListNode* head, int k) { if (head == nullptr) return head; vector<int> vec; ListNode* node = head; while (node != nullptr) { vec.push_back(node->val); node = node->next; } int len = vec.size(); int remainder = k % len; node = head; for (int i = 0; i < remainder; i++) { node->val = vec[len - remainder + i]; node = node->next; } for (int i = 0; i < len - remainder; i++) { node->val = vec[i]; node = node->next; } return head; } };
|
思路
- 我发现很多链表题不用直接在原链表上处理的话都可以用全部存进vector来偷懒
- 这里就是先全部存进vector,然后通过移动的位置k除上链表长度得到的余数作为依据,再进行链表的重新拼接